set(LLVM_TARGET_DEFINITIONS IR.td)
mlir_tablegen(ISQOps.h.inc --gen-op-decls -dialect isq)
mlir_tablegen(ISQOPs.cpp.inc --gen-op-defs -dialect isq)
mlir_tablegen(ISQDialect.h.inc --gen-dialect-decls -dialect isq)
mlir_tablegen(ISQDialect.cpp.inc --gen-dialect-defs -dialect isq)
mlir_tablegen(ISQEnums.h.inc --gen-enum-decls -dialect isq)
mlir_tablegen(ISQEnums.cpp.inc --gen-enum-defs -dialect isq)
mlir_tablegen(ISQTypes.h.inc --gen-typedef-decls -typedefs-dialect isq)
mlir_tablegen(ISQTypes.cpp.inc --gen-typedef-defs -typedefs-dialect isq)
mlir_tablegen(ISQAttrs.h.inc --gen-attrdef-decls -attrdefs-dialect isq)
mlir_tablegen(ISQAttrs.cpp.inc --gen-attrdef-defs -attrdefs-dialect isq)
mlir_tablegen(__tmp_IR.md -gen-dialect-doc -dialect isq)

set(LLVM_TARGET_DEFINITIONS AST.td)
mlir_tablegen(ISQASTOps.h.inc -gen-op-decls -dialect isqast)
mlir_tablegen(ISQASTOPs.cpp.inc -gen-op-defs -dialect isqast)
mlir_tablegen(ISQASTDialect.h.inc -gen-dialect-decls -dialect isqast)
mlir_tablegen(ISQASTDialect.cpp.inc -gen-dialect-defs -dialect isqast)
##mlir_tablegen(Patterns.inc -gen-rewriters)
mlir_tablegen(ISQASTEnums.h.inc -gen-enum-decls -dialect isqast)
mlir_tablegen(ISQASTEnums.cpp.inc -gen-enum-defs -dialect isqast)
mlir_tablegen(ISQASTTypes.h.inc -gen-typedef-decls -dialect isqast)
mlir_tablegen(ISQASTTypes.cpp.inc -gen-typedef-defs -dialect isqast)
mlir_tablegen(ISQASTAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect isqast)
mlir_tablegen(ISQASTAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect isqast)
#mlir_tablegen(ISQASTStructAttrs.h.inc -gen-struct-attr-decls -attrdefs-dialect isqast)
#mlir_tablegen(ISQASTStructAttrs.cpp.inc -gen-struct-attr-defs -attrdefs-dialect isqast)


set(LLVM_TARGET_DEFINITIONS Extra.td)
mlir_tablegen(ISQExtraOps.h.inc -gen-op-decls -dialect isqextra)
mlir_tablegen(ISQExtraOPs.cpp.inc -gen-op-defs -dialect isqextra)
mlir_tablegen(ISQExtraDialect.h.inc -gen-dialect-decls -dialect isqextra)
mlir_tablegen(ISQExtraDialect.cpp.inc -gen-dialect-defs -dialect isqextra)
#mlir_tablegen(ISQExtraEnums.h.inc -gen-enum-decls -dialect isqextra)
#mlir_tablegen(ISQExtraEnums.cpp.inc -gen-enum-defs -dialect isqextra)
mlir_tablegen(ISQExtraTypes.h.inc -gen-typedef-decls -dialect isqextra)
mlir_tablegen(ISQExtraTypes.cpp.inc -gen-typedef-defs -dialect isqextra)
mlir_tablegen(ISQExtraAttrs.h.inc -gen-attrdef-decls -attrdefs-dialect isqextra)
mlir_tablegen(ISQExtraAttrs.cpp.inc -gen-attrdef-defs -attrdefs-dialect isqextra)

mlir_tablegen(IRAttr.md -gen-attrdef-doc --attrdefs-dialect isq)
add_custom_command(OUTPUT IR.md 
    COMMAND python3 ${PROJECT_SOURCE_DIR}/scripts/fix_dialect_doc.py __tmp_IR.md IR.md
    DEPENDS __tmp_IR.md)
#add_custom_target(mlir-dialect-doc ALL DEPENDS IR.md)
add_public_tablegen_target(MLIRTablegen)